home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #2
/
Amiga Plus CD - 1995 - No. 2.iso
/
pd
/
grafik
/
mandelsquare-ham
/
plotham.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-04-11
|
11KB
|
340 lines
extern VOID __asm Set(register __a0 PLANEPTR *,register __d0 WORD X,register __d2 WORD Colour,register __d3 WORD Depth);
STATIC BYTE MaxDelta[16][16][16] =
{
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2
};
STATIC BYTE Diff[16][16] =
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,
2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,
3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,
4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,
5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,
6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8,
8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7,
9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6,
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5,
11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4,
12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3,
13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2,
14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1,
15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
};
VOID __regargs
SetHAM(PLANEPTR *Planes,WORD X,UWORD RGB,BYTE Depth)
{
STATIC UBYTE LastRed,LastGreen,LastBlue;
UBYTE Red,Green,Blue;
Red = (RGB >> 8) & 0xF;
Green = (RGB >> 4) & 0xF;
Blue = RGB & 0xF;
if(X)
{
switch(MaxDelta[Diff[LastRed][Red]][Diff[LastGreen][Green]][Diff[LastBlue][Blue]])
{
case 0: Set(Planes,X,0x20 | (LastRed = Red),Depth);
break;
case 1: Set(Planes,X,0x30 | (LastGreen = Green),Depth);
break;
case 2: Set(Planes,X,0x10 | (LastBlue = Blue),Depth);
break;
}
}
else
{
switch(MaxDelta[Red][Green][Blue])
{
case 0: Set(Planes,X,0x20 | (LastRed = Red),Depth);
LastGreen = LastBlue = 0;
break;
case 1: Set(Planes,X,0x30 | (LastGreen = Green),Depth);
LastRed = LastBlue = 0;
break;
case 2: Set(Planes,X,0x10 | (LastBlue = Blue),Depth);
LastRed = LastGreen = 0;
break;
}
}
}